﻿using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium;
using System.IO;

namespace CloudStorageLight.Web.Tests
{
    [TestClass]
    public class GuestTest
    {
        IWebDriver driver;
        static string account;

        // クラス内で最初のテストを実行する前に、ClassInitialize を使用してコードを実行してください
        [ClassInitialize()]
        public static void MyClassInitialize(TestContext testContext)
        {
            account = "test001";
        }
        //
        // クラス内のテストをすべて実行したら、ClassCleanup を使用してコードを実行してください
        [ClassCleanup()]
        public static void MyClassCleanup()
        {
        }

        [TestInitialize]
        public void TestSetUp()
        {
            driver = SubScenarioUtil.CreateWebDriver();
            SubScenarioUtil.Navigate(driver, "f/Demo/ゲスト/", account);
            var pass = SubScenarioUtil.TryFind(driver, By.Name("passcode"));
            pass.SendKeys(AppUtil.GetAppConfigValue("TestPassword"));
            pass.Submit();
        }

        [TestCleanup]
        public void TestCleanup()
        {
            driver.Close();
        }


        [TestMethod]
        public void ダウンロード()
        {
            SubScenarioUtil.ClearDownloadFile("a.txt");
            SubScenarioUtil.GetFolderOrFileElement(driver, "a.txt").Click();
            driver.FindElement(By.Id("download-command")).Click();
            Assert.IsTrue(SubScenarioUtil.CheckDownloadFile("a.txt"));

        }

        [TestMethod]
        public void アップロード()
        {
            var filePath = "UnitTest.txt";
            File.WriteAllText(filePath, "TEST");

            SubScenarioUtil.UploadFile(driver, Path.GetFullPath(filePath));
  
            SubScenarioUtil.Navigate(driver, "f/Demo/ゲスト/", account);
            var uploaded = SubScenarioUtil.GetFolderOrFileElement(driver, filePath);
            Assert.IsTrue(uploaded != null);

        }

    }
}
